/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ws;

import edu.ucue.ptc.gco.mdl.Empleado;
import edu.ucue.ptc.gco.mdl.Usuario;
import edu.ucue.ptc.gco.ngc.UsuarioManager;
import edu.ucue.ptc.gco.ngc.UsuarioManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 *
 * @author CHRISTIAN
 */
@WebService(serviceName = "UsuarioWebService")
@Stateless()
public class UsuarioWebService {
    @EJB
    private UsuarioManagerLocal ejbRefUsuario;
    
    @WebMethod(operationName = "crearUsuario")
    public void crearUsuario(@WebParam(name = "usuario") Usuario usuario) throws AtributoInvalidoException{
        ejbRefUsuario.crearUsuario(usuario);
    }

    @WebMethod(operationName = "actualizarUsuario")
    public void actualizarUsuario(@WebParam(name = "usuario") Usuario usuario) throws AtributoInvalidoException{
        ejbRefUsuario.actualizarUsuario(usuario);
    }

    @WebMethod(operationName = "eliminarUsuario")
    @Oneway
    public void eliminarUsuario(@WebParam(name = "usuario") Usuario usuario) {
        ejbRefUsuario.eliminarUsuario(usuario);
    }

    @WebMethod(operationName = "testUsuario")
    public void testUsuario(@WebParam(name = "id") int id) throws AtributoInvalidoException{
        Usuario u = new Usuario();
        Empleado e=new Empleado();
        e.setIdPersona(2);
        u.setNombre("nuevo usuario");
        u.setPassword("1234");
        ejbRefUsuario.crearUsuario(u);
    }    
    
    @WebMethod(operationName = "listarTodosUsuarios")
    public List<Usuario> listarTodosUsuarios() {
        return ejbRefUsuario.listarUsuario();
    }

    @WebMethod(operationName = "obtenerPorIdUsuario")
    public Usuario obtenerPorIdUsuario(@WebParam(name = "idUsuario") int idUsuario) {
        return ejbRefUsuario.obtenerUsuarioPorId(idUsuario);
    }
    
    @WebMethod(operationName = "listarUsuarioWhere")
    public List<Usuario> listarUsuarioWhere(@WebParam(name = "where") String where) {
        return ejbRefUsuario.listarUsuarioWhere(where);
    }
}
